import rclpy
from rclpy.node import Node

class ParameterNode(Node):
    def __init__(self):
        super().__init__('parameter_node')

        # 声明参数
        self.declare_parameter('greeting', 'Hello, ROS 2!')
        self.declare_parameter('repeat', 1)
        
        # 用于从launch文件中获取参数
        param1=self.declare_parameter('user_param1', 12).get_parameter_value().integer_value
        param2=self.declare_parameter('user_param2', "default").get_parameter_value().string_value
        self.get_logger().info(f'param1={param1} param2={param2}')
        timer1=self.create_timer(1,self.timer1_fun)


    def timer1_fun(self):
        greeting = self.get_parameter('greeting').get_parameter_value().string_value
        repeat = self.get_parameter('repeat').get_parameter_value().integer_value
        self.get_logger().info(f'greeting ={greeting} repeat={repeat}')
        param1 = self.get_parameter('user_param2').get_parameter_value().string_value
        self.get_logger().info(f'param1 ={param1}')

def main(args=None):
    rclpy.init(args=args)

    node = ParameterNode()
    rclpy.spin(node)

    node.destroy_node()
    rclpy.shutdown()

if __name__ == '__main__':
    main()
